package TREE;
public interface tree {
    public void InitBiTree();//构造空树
    
    public void destoryBiTree();//销毁二叉树
    
    public void ClearBiTree();//清空二叉树
    
    public boolean BiTreeEmpty();//判断二叉树是否为空
    
    public int BiTreeDepth();//输出二叉树的深度
    
    public int doBiTreeDepth(Node o);//输出某一结点的深度（可以是根结点）
    
    public Node Root();//返回树的根
    
    public Object Value(Node o);//返回结点o的值
    
    public void Assign(Node pos,Object o);//把结点pos的值赋值为o
    
    public Node Parent(Node o);//输出结点o的父类
    
    public Node LeftChild(Node o);//返回结点o的左孩子
    
    public Node RightChild(Node o);//返回结点o的右孩子
    
    public Node LeftSibling(Node o);//返回结点o的左兄弟
    
    public Node RightSibling(Node o);//返回结点o的右兄弟
    
    public void PreOrderTreverse(Node o);//对树进行前序遍历
   
    public void InOrderTraverse(Node o);//对树进行中序遍历
    
    public void PostOrderTraverse(Node o);//对数进行后序遍历
    
    public void LevelTraverse(Node o);//对树进行层次遍历
    
    public Node insert(Node a,int o,Node b);//插入数据，当o=1时，b为a的左子数，o=-1时，b为a的右子树，当o=0时，插入根
   
    public void delete(Node pos,int a);//当a==1时，删除结点pos的左子树；当a==-1时，删除结点pos的右子树
}
